<!-- HTML header for doxygen 1.8.13-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MTB CAT1 Peripheral driver library: Memory Slot Functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen_style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><a href="http://www.cypress.com/"><img alt="Logo" src="IFXCYP_one-line.png"/></a></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">MTB CAT1 Peripheral driver library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__group__smif__mem__slot__functions.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Memory Slot Functions<div class="ingroups"><a class="el" href="group__group__smif.html">SMIF         (Serial Memory Interface)</a> &raquo; <a class="el" href="group__group__smif__functions.html">Functions</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">General Description</h2>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga6f38cc37ab0e6fcb97d2675d1ae11771"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#ga6f38cc37ab0e6fcb97d2675d1ae11771">Cy_SMIF_MemInit</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="structcy__stc__smif__block__config__t.html">cy_stc_smif_block_config_t</a> const *blockConfig, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *context)</td></tr>
<tr class="memdesc:ga6f38cc37ab0e6fcb97d2675d1ae11771"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function initializes the slots of the memory device in the SMIF configuration.  <a href="#ga6f38cc37ab0e6fcb97d2675d1ae11771">More...</a><br /></td></tr>
<tr class="separator:ga6f38cc37ab0e6fcb97d2675d1ae11771"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9fd6efd3e95d3af280f1242b50bf6c9e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#ga9fd6efd3e95d3af280f1242b50bf6c9e">Cy_SMIF_MemDeInit</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base)</td></tr>
<tr class="memdesc:ga9fd6efd3e95d3af280f1242b50bf6c9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function de-initializes all slave slots of the memory device to their default values.  <a href="#ga9fd6efd3e95d3af280f1242b50bf6c9e">More...</a><br /></td></tr>
<tr class="separator:ga9fd6efd3e95d3af280f1242b50bf6c9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac93c10b75a6f4f69da062ee27515e3b5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#gac93c10b75a6f4f69da062ee27515e3b5">Cy_SMIF_MemCmdWriteEnable</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *memDevice, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *context)</td></tr>
<tr class="memdesc:gac93c10b75a6f4f69da062ee27515e3b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sends the Write Enable command to the memory device.  <a href="#gac93c10b75a6f4f69da062ee27515e3b5">More...</a><br /></td></tr>
<tr class="separator:gac93c10b75a6f4f69da062ee27515e3b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga517bd904fee532ec7734bdd76a06784a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#ga517bd904fee532ec7734bdd76a06784a">Cy_SMIF_MemCmdWriteDisable</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *memDevice, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *context)</td></tr>
<tr class="memdesc:ga517bd904fee532ec7734bdd76a06784a"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sends a Write Disable command to the memory device.  <a href="#ga517bd904fee532ec7734bdd76a06784a">More...</a><br /></td></tr>
<tr class="separator:ga517bd904fee532ec7734bdd76a06784a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae648d554521de4d840ace68af2db65a3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#gae648d554521de4d840ace68af2db65a3">Cy_SMIF_MemIsBusy</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *memDevice, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *context)</td></tr>
<tr class="memdesc:gae648d554521de4d840ace68af2db65a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function checks if the status of the memory device is busy.  <a href="#gae648d554521de4d840ace68af2db65a3">More...</a><br /></td></tr>
<tr class="separator:gae648d554521de4d840ace68af2db65a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga99f073ae041bf9de9a0dc04d79ca6812"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#ga99f073ae041bf9de9a0dc04d79ca6812">Cy_SMIF_MemQuadEnable</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *memDevice, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *context)</td></tr>
<tr class="memdesc:ga99f073ae041bf9de9a0dc04d79ca6812"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function enables the memory device for the quad mode of operation.  <a href="#ga99f073ae041bf9de9a0dc04d79ca6812">More...</a><br /></td></tr>
<tr class="separator:ga99f073ae041bf9de9a0dc04d79ca6812"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaff12e99b91e8135c8f6cba1935e2caaf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#gaff12e99b91e8135c8f6cba1935e2caaf">Cy_SMIF_MemOctalEnable</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *memDevice, <a class="el" href="group__group__smif__enums.html#ga6673e9fe92675ceaddadeb41e31a5821">cy_en_smif_data_rate_t</a> dataRate, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *context)</td></tr>
<tr class="memdesc:gaff12e99b91e8135c8f6cba1935e2caaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function enables the memory device for the octal mode of operation.  <a href="#gaff12e99b91e8135c8f6cba1935e2caaf">More...</a><br /></td></tr>
<tr class="separator:gaff12e99b91e8135c8f6cba1935e2caaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5721a3aa31e081ba72ba8d8a1c3680af"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#ga5721a3aa31e081ba72ba8d8a1c3680af">Cy_SMIF_MemCmdReadStatus</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *memDevice, uint8_t *status, uint8_t command, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *context)</td></tr>
<tr class="memdesc:ga5721a3aa31e081ba72ba8d8a1c3680af"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function reads the status register.  <a href="#ga5721a3aa31e081ba72ba8d8a1c3680af">More...</a><br /></td></tr>
<tr class="separator:ga5721a3aa31e081ba72ba8d8a1c3680af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga026831e7570cceb2af416e92ea26055e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#ga026831e7570cceb2af416e92ea26055e">Cy_SMIF_MemCmdWriteStatus</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *memDevice, void const *status, uint8_t command, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *context)</td></tr>
<tr class="memdesc:ga026831e7570cceb2af416e92ea26055e"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function writes the status register.  <a href="#ga026831e7570cceb2af416e92ea26055e">More...</a><br /></td></tr>
<tr class="separator:ga026831e7570cceb2af416e92ea26055e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga931d54016e15dccab72855522827ac5e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#ga931d54016e15dccab72855522827ac5e">Cy_SMIF_MemCmdChipErase</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *memDevice, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *context)</td></tr>
<tr class="memdesc:ga931d54016e15dccab72855522827ac5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function performs a chip erase of the external memory.  <a href="#ga931d54016e15dccab72855522827ac5e">More...</a><br /></td></tr>
<tr class="separator:ga931d54016e15dccab72855522827ac5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga885d4bee96580b23b2176917b0cc0ea2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#ga885d4bee96580b23b2176917b0cc0ea2">Cy_SMIF_MemCmdSectorErase</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *memDevice, uint8_t const *sectorAddr, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *context)</td></tr>
<tr class="memdesc:ga885d4bee96580b23b2176917b0cc0ea2"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function performs a block Erase of the external memory.  <a href="#ga885d4bee96580b23b2176917b0cc0ea2">More...</a><br /></td></tr>
<tr class="separator:ga885d4bee96580b23b2176917b0cc0ea2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga81dda3370adfb1c5ae37c4ff8657d527"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#ga81dda3370adfb1c5ae37c4ff8657d527">Cy_SMIF_MemCmdProgram</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *memDevice, uint8_t const *addr, uint8_t const *writeBuff, uint32_t size, <a class="el" href="group__group__smif__data__structures.html#ga13688dde62e8977a11ab69cf6b2c39b5">cy_smif_event_cb_t</a> cmdCompleteCb, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *context)</td></tr>
<tr class="memdesc:ga81dda3370adfb1c5ae37c4ff8657d527"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function performs the Program operation.  <a href="#ga81dda3370adfb1c5ae37c4ff8657d527">More...</a><br /></td></tr>
<tr class="separator:ga81dda3370adfb1c5ae37c4ff8657d527"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8507571efa28c8187f5e3c795f59fab4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#ga8507571efa28c8187f5e3c795f59fab4">Cy_SMIF_MemCmdRead</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *memDevice, uint8_t const *addr, uint8_t *readBuff, uint32_t size, <a class="el" href="group__group__smif__data__structures.html#ga13688dde62e8977a11ab69cf6b2c39b5">cy_smif_event_cb_t</a> cmdCompleteCb, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *context)</td></tr>
<tr class="memdesc:ga8507571efa28c8187f5e3c795f59fab4"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function performs the Read operation.  <a href="#ga8507571efa28c8187f5e3c795f59fab4">More...</a><br /></td></tr>
<tr class="separator:ga8507571efa28c8187f5e3c795f59fab4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7f74353f55fbe56cdc8c93285bbb51d6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#ga7f74353f55fbe56cdc8c93285bbb51d6">Cy_SMIF_MemSfdpDetect</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="structcy__stc__smif__mem__device__cfg__t.html">cy_stc_smif_mem_device_cfg_t</a> *device, <a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a> slaveSelect, <a class="el" href="group__group__smif__enums.html#ga6d9ba2ef785b94cf542c573a51a0eb58">cy_en_smif_data_select_t</a> dataSelect, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *context)</td></tr>
<tr class="memdesc:ga7f74353f55fbe56cdc8c93285bbb51d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function detects the device signature for SFDP devices.  <a href="#ga7f74353f55fbe56cdc8c93285bbb51d6">More...</a><br /></td></tr>
<tr class="separator:ga7f74353f55fbe56cdc8c93285bbb51d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacac7e5f4733100422b67fe756e24e5f2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#gacac7e5f4733100422b67fe756e24e5f2">Cy_SMIF_Reset_Memory</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a> slaveSelect)</td></tr>
<tr class="memdesc:gacac7e5f4733100422b67fe756e24e5f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is the weak implementation for resetting the memory.  <a href="#gacac7e5f4733100422b67fe756e24e5f2">More...</a><br /></td></tr>
<tr class="separator:gacac7e5f4733100422b67fe756e24e5f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga997877a3ca4a218fbec1c00fc4a00138"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#ga997877a3ca4a218fbec1c00fc4a00138">Cy_SMIF_MemInitSfdpMode</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, const <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> *memCfg, <a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a> maxdataWidth, <a class="el" href="group__group__smif__enums.html#ga686921944cbda1b19deb3c24363e7d9b">cy_en_smif_qer_t</a> qer_id, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *context)</td></tr>
<tr class="memdesc:ga997877a3ca4a218fbec1c00fc4a00138"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function can be used for any preferred data width based command instruction set from SFDP Buffer.  <a href="#ga997877a3ca4a218fbec1c00fc4a00138">More...</a><br /></td></tr>
<tr class="separator:ga997877a3ca4a218fbec1c00fc4a00138"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7538e07a8ab513b8ef223a93528cb4da"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#ga7538e07a8ab513b8ef223a93528cb4da">Cy_SMIF_MemIsReady</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *memConfig, uint32_t timeoutUs, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *context)</td></tr>
<tr class="memdesc:ga7538e07a8ab513b8ef223a93528cb4da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Polls the memory device to check whether it is ready to accept new commands or not until either it is ready or the retries have exceeded the limit.  <a href="#ga7538e07a8ab513b8ef223a93528cb4da">More...</a><br /></td></tr>
<tr class="separator:ga7538e07a8ab513b8ef223a93528cb4da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2967ce386fb4510033571fa67dc69ef7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#ga2967ce386fb4510033571fa67dc69ef7">Cy_SMIF_MemIsQuadEnabled</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *memConfig, bool *isQuadEnabled, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *context)</td></tr>
<tr class="memdesc:ga2967ce386fb4510033571fa67dc69ef7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether the QE (Quad Enable) bit is set or not in the configuration register of the memory.  <a href="#ga2967ce386fb4510033571fa67dc69ef7">More...</a><br /></td></tr>
<tr class="separator:ga2967ce386fb4510033571fa67dc69ef7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1be9fc6a3d0579ed6dcbf4b0f843c98b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#ga1be9fc6a3d0579ed6dcbf4b0f843c98b">Cy_SMIF_MemEnableQuadMode</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *memConfig, uint32_t timeoutUs, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *context)</td></tr>
<tr class="memdesc:ga1be9fc6a3d0579ed6dcbf4b0f843c98b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the QE (QUAD Enable) bit in the external memory configuration register to enable quad SPI mode.  <a href="#ga1be9fc6a3d0579ed6dcbf4b0f843c98b">More...</a><br /></td></tr>
<tr class="separator:ga1be9fc6a3d0579ed6dcbf4b0f843c98b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3754459e6dd69599c7646a03a7039136"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#ga3754459e6dd69599c7646a03a7039136">Cy_SMIF_MemRead</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *memConfig, uint32_t address, uint8_t rxBuffer[], uint32_t length, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *context)</td></tr>
<tr class="memdesc:ga3754459e6dd69599c7646a03a7039136"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data from the external memory and blocks until the read transfer is complete or a timeout occurs.  <a href="#ga3754459e6dd69599c7646a03a7039136">More...</a><br /></td></tr>
<tr class="separator:ga3754459e6dd69599c7646a03a7039136"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1906a54462e0cd85e6d5a6e6efc03c7a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#ga1906a54462e0cd85e6d5a6e6efc03c7a">Cy_SMIF_MemWrite</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *memConfig, uint32_t address, uint8_t const txBuffer[], uint32_t length, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *context)</td></tr>
<tr class="memdesc:ga1906a54462e0cd85e6d5a6e6efc03c7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function writes data to the external memory.  <a href="#ga1906a54462e0cd85e6d5a6e6efc03c7a">More...</a><br /></td></tr>
<tr class="separator:ga1906a54462e0cd85e6d5a6e6efc03c7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0366724555c54f148c6bec37f084897c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#ga0366724555c54f148c6bec37f084897c">Cy_SMIF_MemEraseSector</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *memConfig, uint32_t address, uint32_t length, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *context)</td></tr>
<tr class="memdesc:ga0366724555c54f148c6bec37f084897c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Erases a block/sector of the external memory.  <a href="#ga0366724555c54f148c6bec37f084897c">More...</a><br /></td></tr>
<tr class="separator:ga0366724555c54f148c6bec37f084897c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7525385db143137bd0e16a82e248243d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#ga7525385db143137bd0e16a82e248243d">Cy_SMIF_MemEraseChip</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *memConfig, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *context)</td></tr>
<tr class="memdesc:ga7525385db143137bd0e16a82e248243d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Erases the entire chip of the external memory.  <a href="#ga7525385db143137bd0e16a82e248243d">More...</a><br /></td></tr>
<tr class="separator:ga7525385db143137bd0e16a82e248243d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2ecd32504ba15c504203a6ac3daee4c4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#ga2ecd32504ba15c504203a6ac3daee4c4">Cy_SMIF_MemLocateHybridRegion</a> (<a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *memDevice, <a class="el" href="structcy__stc__smif__hybrid__region__info__t.html">cy_stc_smif_hybrid_region_info_t</a> **regionInfo, uint32_t address)</td></tr>
<tr class="memdesc:ga2ecd32504ba15c504203a6ac3daee4c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function locates the region structure by the address which belongs to it.  <a href="#ga2ecd32504ba15c504203a6ac3daee4c4">More...</a><br /></td></tr>
<tr class="separator:ga2ecd32504ba15c504203a6ac3daee4c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga18824b6bf3b3c8a5ac03a24f748da880"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#ga18824b6bf3b3c8a5ac03a24f748da880">Cy_SMIF_SetReadyPollingDelay</a> (uint16_t pollTimeoutUs, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *context)</td></tr>
<tr class="memdesc:ga18824b6bf3b3c8a5ac03a24f748da880"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sets the polling delay in micro seconds to check memory device availability.  <a href="#ga18824b6bf3b3c8a5ac03a24f748da880">More...</a><br /></td></tr>
<tr class="separator:ga18824b6bf3b3c8a5ac03a24f748da880"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga980d0c489c56484a487cf6f501086133"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#ga980d0c489c56484a487cf6f501086133">Cy_SMIF_MemCmdPowerDown</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *memDevice, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *context)</td></tr>
<tr class="memdesc:ga980d0c489c56484a487cf6f501086133"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sends a Power-down command to the selected memory device in Single SPI mode.  <a href="#ga980d0c489c56484a487cf6f501086133">More...</a><br /></td></tr>
<tr class="separator:ga980d0c489c56484a487cf6f501086133"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabb2213b32c3004b0b46f63e859e4b7e4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#gabb2213b32c3004b0b46f63e859e4b7e4">Cy_SMIF_MemCmdReleasePowerDown</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *memDevice, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *context)</td></tr>
<tr class="memdesc:gabb2213b32c3004b0b46f63e859e4b7e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sends a Release Power-down command to the selected memory device in Single SPI mode.  <a href="#gabb2213b32c3004b0b46f63e859e4b7e4">More...</a><br /></td></tr>
<tr class="separator:gabb2213b32c3004b0b46f63e859e4b7e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0bbdafc8248267cb394f096579ffe992"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#ga0bbdafc8248267cb394f096579ffe992">Cy_SMIF_MemEnableFWCalibration</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a> slave)</td></tr>
<tr class="memdesc:ga0bbdafc8248267cb394f096579ffe992"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function enables Firmware Calibration mode for the device.  <a href="#ga0bbdafc8248267cb394f096579ffe992">More...</a><br /></td></tr>
<tr class="separator:ga0bbdafc8248267cb394f096579ffe992"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3e786478e5f61f5ed765fb6f85763cbe"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#ga3e786478e5f61f5ed765fb6f85763cbe">Cy_SMIF_MemDisableFWCalibration</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a> slave)</td></tr>
<tr class="memdesc:ga3e786478e5f61f5ed765fb6f85763cbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function disables Firmware Calibration mode for the device.  <a href="#ga3e786478e5f61f5ed765fb6f85763cbe">More...</a><br /></td></tr>
<tr class="separator:ga3e786478e5f61f5ed765fb6f85763cbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad090759fd4274f1ed9af72742ef7354c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#gad090759fd4274f1ed9af72742ef7354c">Cy_SMIF_SetSelectedDelayTapSel</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a> slave, <a class="el" href="group__group__smif__enums.html#ga75fd5ed63d1828766ad5c8a7a20c52ca">cy_en_smif_mem_data_line_t</a> data_line, uint8_t tapSel)</td></tr>
<tr class="memdesc:gad090759fd4274f1ed9af72742ef7354c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sets delay tap for a particular data line.  <a href="#gad090759fd4274f1ed9af72742ef7354c">More...</a><br /></td></tr>
<tr class="separator:gad090759fd4274f1ed9af72742ef7354c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac18b090fdeb706017c0440961dc398c3"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#gac18b090fdeb706017c0440961dc398c3">Cy_SMIF_GetSelectedDelayTapSel</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, <a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a> slave, <a class="el" href="group__group__smif__enums.html#ga75fd5ed63d1828766ad5c8a7a20c52ca">cy_en_smif_mem_data_line_t</a> data_line)</td></tr>
<tr class="memdesc:gac18b090fdeb706017c0440961dc398c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function gets delay tap set for a particular data line.  <a href="#gac18b090fdeb706017c0440961dc398c3">More...</a><br /></td></tr>
<tr class="separator:gac18b090fdeb706017c0440961dc398c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5af364fada94a7d6d660b8d3c2028b56"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#ga5af364fada94a7d6d660b8d3c2028b56">Cy_SMIF_MemGetSDLTap</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, const <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> *memConfig, uint8_t *posTap, uint8_t *negTap)</td></tr>
<tr class="memdesc:ga5af364fada94a7d6d660b8d3c2028b56"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function retrieves the Slave Delay Line (SDL) Tap in use.  <a href="#ga5af364fada94a7d6d660b8d3c2028b56">More...</a><br /></td></tr>
<tr class="separator:ga5af364fada94a7d6d660b8d3c2028b56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga51dba308ae8592cda5c0b1f80eeee47f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#ga51dba308ae8592cda5c0b1f80eeee47f">Cy_SMIF_MemSetSDLTap</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, const <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> *memConfig, uint8_t posTap, uint8_t negTap)</td></tr>
<tr class="memdesc:ga51dba308ae8592cda5c0b1f80eeee47f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sets the Slave Delay Line (SDL) tap ranging from 0 to 15.  <a href="#ga51dba308ae8592cda5c0b1f80eeee47f">More...</a><br /></td></tr>
<tr class="separator:ga51dba308ae8592cda5c0b1f80eeee47f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0b50fd00f027d29d3486bcd6af76fe1c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__smif__mem__slot__functions.html#ga0b50fd00f027d29d3486bcd6af76fe1c">Cy_SMIF_MemCalibrateSDL</a> (<a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *base, const <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> *memConfig, uint32_t calibrationDataOffsetAddress, <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *context)</td></tr>
<tr class="memdesc:ga0b50fd00f027d29d3486bcd6af76fe1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function takes an offset address as input to perform read/write test and assign best possible Slave Delay Line (SDL) tap.  <a href="#ga0b50fd00f027d29d3486bcd6af76fe1c">More...</a><br /></td></tr>
<tr class="separator:ga0b50fd00f027d29d3486bcd6af76fe1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga6f38cc37ab0e6fcb97d2675d1ae11771"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6f38cc37ab0e6fcb97d2675d1ae11771">&#9670;&nbsp;</a></span>Cy_SMIF_MemInit()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_MemInit </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__block__config__t.html">cy_stc_smif_block_config_t</a> const *&#160;</td>
          <td class="paramname"><em>blockConfig</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function initializes the slots of the memory device in the SMIF configuration. </p>
<p>This function must be called when a memory device is required to be used in memory-mapped (XIP) mode. This function can also be called instead of calling <a class="el" href="group__group__smif__mem__slot__functions.html#ga7f74353f55fbe56cdc8c93285bbb51d6">Cy_SMIF_MemSfdpDetect</a> when SFDP auto-discovery is enabled. Note that this function performs SFDP on all the external memories whereas <a class="el" href="group__group__smif__mem__slot__functions.html#ga7f74353f55fbe56cdc8c93285bbb51d6">Cy_SMIF_MemSfdpDetect</a> performs it only on one memory that is specified through the arguments. This function configures the SMIF device slot registers with the configuration from <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> structure which is a member of the <a class="el" href="structcy__stc__smif__block__config__t.html">cy_stc_smif_block_config_t</a> structure. If SFDP discovery is enabled in the configuration structure through autoDetectSfdp field, this function calls <a class="el" href="group__group__smif__mem__slot__functions.html#ga7f74353f55fbe56cdc8c93285bbb51d6">Cy_SMIF_MemSfdpDetect</a> function for each memory, fills the structures with the discovered parameters, and configures the SMIF device slot registers accordingly. <a class="el" href="group__group__smif__low__level__functions.html#gaea2684847f04e2e7e2c85cfe7fd37881">Cy_SMIF_Init</a> must have been called prior to calling this function. The <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> context structure returned from <a class="el" href="group__group__smif__low__level__functions.html#gaea2684847f04e2e7e2c85cfe7fd37881">Cy_SMIF_Init</a> is passed as a parameter to this function.</p>
<dl class="section note"><dt>Note</dt><dd>4-byte addressing mode is set when the memory device supports 3- or 4-byte addressing mode.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The address of the slave-slot device register to initialize.</td></tr>
    <tr><td class="paramname">blockConfig</td><td>The configuration structure array that configures the SMIF memory device to be mapped into the PSoC memory map. <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a></td></tr>
    <tr><td class="paramname">context</td><td>This is the pointer to the context structure <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> allocated by the user. The structure is used during the SMIF operation for internal configuration and data retention. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The memory slot initialization status.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41aab98f08cdd559a8220233078375b0319">CY_SMIF_SFDP_SS0_FAILED</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41ad03d666d999e6622e94873469908702b">CY_SMIF_SFDP_SS1_FAILED</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41ac7e1fa3b6e7239c7f349a6fb7f1bcffd">CY_SMIF_SFDP_SS2_FAILED</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a2cffe8c7a33af9216fa5d83f59ea769d">CY_SMIF_SFDP_SS3_FAILED</a> </li>
</ul>
</dd></dl>

</div>
</div>
<a id="ga9fd6efd3e95d3af280f1242b50bf6c9e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9fd6efd3e95d3af280f1242b50bf6c9e">&#9670;&nbsp;</a></span>Cy_SMIF_MemDeInit()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Cy_SMIF_MemDeInit </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function de-initializes all slave slots of the memory device to their default values. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gac93c10b75a6f4f69da062ee27515e3b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac93c10b75a6f4f69da062ee27515e3b5">&#9670;&nbsp;</a></span>Cy_SMIF_MemCmdWriteEnable()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_MemCmdWriteEnable </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *&#160;</td>
          <td class="paramname"><em>memDevice</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sends the Write Enable command to the memory device. </p>
<dl class="section note"><dt>Note</dt><dd>This function uses the low-level <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11" title="This function transmits a command byte followed by a parameter which is typically an address field...">Cy_SMIF_TransmitCommand()</a> API. The <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11" title="This function transmits a command byte followed by a parameter which is typically an address field...">Cy_SMIF_TransmitCommand()</a> API works in a blocking mode. In the dual quad mode, this API is called for each memory.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">memDevice</td><td>The device to which the command is sent.</td></tr>
    <tr><td class="paramname">context</td><td>This is the pointer to the context structure <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> allocated by the user. The structure is used during the SMIF operation for internal configuration and data retention. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of the command transmission.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41acec88a667ae4eb2db47acfc63492ac7d">CY_SMIF_EXCEED_TIMEOUT</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9972908ec392b0c3a3ccd2e2f837e64e">CY_SMIF_CMD_NOT_FOUND</a> </li>
</ul>
</dd></dl>

</div>
</div>
<a id="ga517bd904fee532ec7734bdd76a06784a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga517bd904fee532ec7734bdd76a06784a">&#9670;&nbsp;</a></span>Cy_SMIF_MemCmdWriteDisable()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_MemCmdWriteDisable </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *&#160;</td>
          <td class="paramname"><em>memDevice</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sends a Write Disable command to the memory device. </p>
<dl class="section note"><dt>Note</dt><dd>This function uses the low-level <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11" title="This function transmits a command byte followed by a parameter which is typically an address field...">Cy_SMIF_TransmitCommand()</a> API. <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11" title="This function transmits a command byte followed by a parameter which is typically an address field...">Cy_SMIF_TransmitCommand()</a> API works in a blocking mode. In the dual quad mode this API should be called for each memory.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">memDevice</td><td>The device to which the command is sent.</td></tr>
    <tr><td class="paramname">context</td><td>This is the pointer to the context structure <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> allocated by the user. The structure is used during the SMIF operation for internal configuration and data retention. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of the command transmission.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41acec88a667ae4eb2db47acfc63492ac7d">CY_SMIF_EXCEED_TIMEOUT</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9972908ec392b0c3a3ccd2e2f837e64e">CY_SMIF_CMD_NOT_FOUND</a> </li>
</ul>
</dd></dl>

</div>
</div>
<a id="gae648d554521de4d840ace68af2db65a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae648d554521de4d840ace68af2db65a3">&#9670;&nbsp;</a></span>Cy_SMIF_MemIsBusy()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Cy_SMIF_MemIsBusy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *&#160;</td>
          <td class="paramname"><em>memDevice</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function checks if the status of the memory device is busy. </p>
<p>This is done by reading the status register and the corresponding bit (stsRegBusyMask). This function is a blocking function until the status register from the memory is read.</p>
<dl class="section note"><dt>Note</dt><dd>In the dual quad mode, this API is called for each memory.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">memDevice</td><td>The device to which the command is sent.</td></tr>
    <tr><td class="paramname">context</td><td>This is the pointer to the context structure <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> allocated by the user. The structure is used during the SMIF operation for internal configuration and data retention. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of the memory device.<ul>
<li>True - The device is busy or a timeout occurs.</li>
<li>False - The device is not busy.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Check <a class="el" href="group__group__smif.html#group_smif_usage_rules">Rules for PSoC6 QSPI/SMIF Block Usage</a> for any usage restriction </dd></dl>

</div>
</div>
<a id="ga99f073ae041bf9de9a0dc04d79ca6812"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga99f073ae041bf9de9a0dc04d79ca6812">&#9670;&nbsp;</a></span>Cy_SMIF_MemQuadEnable()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_MemQuadEnable </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *&#160;</td>
          <td class="paramname"><em>memDevice</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function enables the memory device for the quad mode of operation. </p>
<p>This command must be executed before sending quad SPI commands to the memory device.</p>
<dl class="section note"><dt>Note</dt><dd>In the dual quad mode, this API is called for each memory.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">memDevice</td><td>The device to which the command is sent.</td></tr>
    <tr><td class="paramname">context</td><td>This is the pointer to the context structure <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> allocated by the user. The structure is used during the SMIF operation for internal configuration and data retention. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of the command.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a45254a16fdf2e0a3ba0583430f1a9fc1">CY_SMIF_NO_QE_BIT</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9785ad5aefcfc44b2f342035e2eb141a">CY_SMIF_CMD_FIFO_FULL</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9972908ec392b0c3a3ccd2e2f837e64e">CY_SMIF_CMD_NOT_FOUND</a></li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Check <a class="el" href="group__group__smif.html#group_smif_usage_rules">Rules for PSoC6 QSPI/SMIF Block Usage</a> for any usage restriction </dd></dl>

</div>
</div>
<a id="gaff12e99b91e8135c8f6cba1935e2caaf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaff12e99b91e8135c8f6cba1935e2caaf">&#9670;&nbsp;</a></span>Cy_SMIF_MemOctalEnable()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_MemOctalEnable </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *&#160;</td>
          <td class="paramname"><em>memDevice</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#ga6673e9fe92675ceaddadeb41e31a5821">cy_en_smif_data_rate_t</a>&#160;</td>
          <td class="paramname"><em>dataRate</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function enables the memory device for the octal mode of operation. </p>
<p>This command must be executed before sending octal SPI commands to the memory device.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">memDevice</td><td>The device to which the command is sent.</td></tr>
    <tr><td class="paramname">dataRate</td><td>Specifies the data rate to enable (SDR/DDR).</td></tr>
    <tr><td class="paramname">context</td><td>This is the pointer to the context structure <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> allocated by the user. The structure is used during the SMIF operation for internal configuration and data retention. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of the command.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41ab6ceed21f5d3338e1a772300e875f9ba">CY_SMIF_NO_OE_BIT</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9785ad5aefcfc44b2f342035e2eb141a">CY_SMIF_CMD_FIFO_FULL</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9972908ec392b0c3a3ccd2e2f837e64e">CY_SMIF_CMD_NOT_FOUND</a></li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Check <a class="el" href="group__group__smif.html#group_smif_usage_rules">Rules for PSoC6 QSPI/SMIF Block Usage</a> for any usage restriction</dd></dl>
<div class="fragment"><div class="line">    <span class="comment">/*</span></div><div class="line"><span class="comment">     * mem octal enable is to use all the eight I/Os during communication.</span></div><div class="line"><span class="comment">     * The SMIF/QSPI configuration tool generates the smifBlockConfig structure</span></div><div class="line"><span class="comment">     * needed for the memslot level API usage.</span></div><div class="line"><span class="comment">     */</span></div><div class="line"></div><div class="line">    <a class="code" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> SMIF_context = {0};  <span class="comment">/* This is a shared context structure.</span></div><div class="line"><span class="comment">                                               * It must be global</span></div><div class="line"><span class="comment">                                               */</span></div><div class="line">    <a class="code" href="group__group__smif__mem__slot__functions.html#ga6f38cc37ab0e6fcb97d2675d1ae11771">Cy_SMIF_MemInit</a>(SMIF, &amp;smifBlockConfig, &amp;smifContext);</div><div class="line">    <span class="comment">/* This function enables the memory device for the octal mode of operation.</span></div><div class="line"><span class="comment">     * This command must be executed before sending octal SPI commands to the</span></div><div class="line"><span class="comment">     * memory device.</span></div><div class="line"><span class="comment">     */</span></div><div class="line">    <span class="keywordflow">if</span> (<a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a> != <a class="code" href="group__group__smif__mem__slot__functions.html#gaff12e99b91e8135c8f6cba1935e2caaf">Cy_SMIF_MemOctalEnable</a>(SMIF, smifBlockConfig.memConfig[0], <a class="code" href="group__group__smif__enums.html#gga6673e9fe92675ceaddadeb41e31a5821a75cc45627e4bc90e3214c4196b7a1aee">CY_SMIF_DDR</a>, &amp;SMIF_context))</div><div class="line">    {</div><div class="line">        <span class="comment">/* Insert error handling */</span></div><div class="line">    }</div><div class="line"></div></div><!-- fragment -->
</div>
</div>
<a id="ga5721a3aa31e081ba72ba8d8a1c3680af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5721a3aa31e081ba72ba8d8a1c3680af">&#9670;&nbsp;</a></span>Cy_SMIF_MemCmdReadStatus()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_MemCmdReadStatus </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *&#160;</td>
          <td class="paramname"><em>memDevice</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>status</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>command</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function reads the status register. </p>
<p>This function is a blocking function, it will block the execution flow until the status register is read.</p>
<dl class="section note"><dt>Note</dt><dd>This function uses the low-level <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11" title="This function transmits a command byte followed by a parameter which is typically an address field...">Cy_SMIF_TransmitCommand()</a> API. the <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11" title="This function transmits a command byte followed by a parameter which is typically an address field...">Cy_SMIF_TransmitCommand()</a> API works in a blocking mode. In the dual quad mode, this API is called for each memory.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">memDevice</td><td>The device to which the command is sent.</td></tr>
    <tr><td class="paramname">status</td><td>The status register value returned by the external memory.</td></tr>
    <tr><td class="paramname">command</td><td>The command required to read the status/configuration register.</td></tr>
    <tr><td class="paramname">context</td><td>This is the pointer to the context structure <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> allocated by the user. The structure is used during the SMIF operation for internal configuration and data retention. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of the command reception.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9785ad5aefcfc44b2f342035e2eb141a">CY_SMIF_CMD_FIFO_FULL</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41acec88a667ae4eb2db47acfc63492ac7d">CY_SMIF_EXCEED_TIMEOUT</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9972908ec392b0c3a3ccd2e2f837e64e">CY_SMIF_CMD_NOT_FOUND</a></li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Check <a class="el" href="group__group__smif.html#group_smif_usage_rules">Rules for PSoC6 QSPI/SMIF Block Usage</a> for any usage restriction </dd></dl>

</div>
</div>
<a id="ga026831e7570cceb2af416e92ea26055e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga026831e7570cceb2af416e92ea26055e">&#9670;&nbsp;</a></span>Cy_SMIF_MemCmdWriteStatus()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_MemCmdWriteStatus </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *&#160;</td>
          <td class="paramname"><em>memDevice</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void const *&#160;</td>
          <td class="paramname"><em>status</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>command</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function writes the status register. </p>
<p>This is a blocking function, it will block the execution flow until the command transmission is completed.</p>
<dl class="section note"><dt>Note</dt><dd>This function uses the low-level <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11" title="This function transmits a command byte followed by a parameter which is typically an address field...">Cy_SMIF_TransmitCommand()</a> API. The <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11" title="This function transmits a command byte followed by a parameter which is typically an address field...">Cy_SMIF_TransmitCommand()</a> API works in a blocking mode. In the dual quad mode, this API is called for each memory.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">memDevice</td><td>The device to which the command is sent.</td></tr>
    <tr><td class="paramname">status</td><td>The status to write into the status register.</td></tr>
    <tr><td class="paramname">command</td><td>The command to write into the status/configuration register.</td></tr>
    <tr><td class="paramname">context</td><td>This is the pointer to the context structure <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> allocated by the user. The structure is used during the SMIF operation for internal configuration and data retention. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of the command transmission.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41acec88a667ae4eb2db47acfc63492ac7d">CY_SMIF_EXCEED_TIMEOUT</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9972908ec392b0c3a3ccd2e2f837e64e">CY_SMIF_CMD_NOT_FOUND</a> </li>
</ul>
</dd></dl>

</div>
</div>
<a id="ga931d54016e15dccab72855522827ac5e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga931d54016e15dccab72855522827ac5e">&#9670;&nbsp;</a></span>Cy_SMIF_MemCmdChipErase()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_MemCmdChipErase </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *&#160;</td>
          <td class="paramname"><em>memDevice</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function performs a chip erase of the external memory. </p>
<p>The Write Enable command is called before this API.</p>
<dl class="section note"><dt>Note</dt><dd>This function uses the low-level <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11" title="This function transmits a command byte followed by a parameter which is typically an address field...">Cy_SMIF_TransmitCommand()</a> API. <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11" title="This function transmits a command byte followed by a parameter which is typically an address field...">Cy_SMIF_TransmitCommand()</a> API works in a blocking mode. In the dual quad mode, this API is called for each memory.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">memDevice</td><td>The device to which the command is sent</td></tr>
    <tr><td class="paramname">context</td><td>This is the pointer to the context structure <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> allocated by the user. The structure is used during the SMIF operation for internal configuration and data retention. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of the command transmission.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41acec88a667ae4eb2db47acfc63492ac7d">CY_SMIF_EXCEED_TIMEOUT</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9972908ec392b0c3a3ccd2e2f837e64e">CY_SMIF_CMD_NOT_FOUND</a> </li>
</ul>
</dd></dl>

</div>
</div>
<a id="ga885d4bee96580b23b2176917b0cc0ea2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga885d4bee96580b23b2176917b0cc0ea2">&#9670;&nbsp;</a></span>Cy_SMIF_MemCmdSectorErase()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_MemCmdSectorErase </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *&#160;</td>
          <td class="paramname"><em>memDevice</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>sectorAddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function performs a block Erase of the external memory. </p>
<p>The Write Enable command is called before this API.</p>
<dl class="section note"><dt>Note</dt><dd>This function uses the low-level <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11" title="This function transmits a command byte followed by a parameter which is typically an address field...">Cy_SMIF_TransmitCommand()</a> API. The <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11" title="This function transmits a command byte followed by a parameter which is typically an address field...">Cy_SMIF_TransmitCommand()</a> API works in a blocking mode. In the dual quad mode, this API is called for each memory.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">memDevice</td><td>The device to which the command is sent.</td></tr>
    <tr><td class="paramname">sectorAddr</td><td>The sector address to erase.</td></tr>
    <tr><td class="paramname">context</td><td>This is the pointer to the context structure <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> allocated by the user. The structure is used during the SMIF operation for internal configuration and data retention. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of the command transmission.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41acec88a667ae4eb2db47acfc63492ac7d">CY_SMIF_EXCEED_TIMEOUT</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9972908ec392b0c3a3ccd2e2f837e64e">CY_SMIF_CMD_NOT_FOUND</a> </li>
</ul>
</dd></dl>

</div>
</div>
<a id="ga81dda3370adfb1c5ae37c4ff8657d527"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga81dda3370adfb1c5ae37c4ff8657d527">&#9670;&nbsp;</a></span>Cy_SMIF_MemCmdProgram()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_MemCmdProgram </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *&#160;</td>
          <td class="paramname"><em>memDevice</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>writeBuff</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__data__structures.html#ga13688dde62e8977a11ab69cf6b2c39b5">cy_smif_event_cb_t</a>&#160;</td>
          <td class="paramname"><em>cmdCompleteCb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function performs the Program operation. </p>
<dl class="section note"><dt>Note</dt><dd>This function uses the <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11" title="This function transmits a command byte followed by a parameter which is typically an address field...">Cy_SMIF_TransmitCommand()</a> API. The <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11" title="This function transmits a command byte followed by a parameter which is typically an address field...">Cy_SMIF_TransmitCommand()</a> API works in the blocking mode. In the dual quad mode, this API works with both types of memory simultaneously.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">memDevice</td><td>The device to which the command is sent.</td></tr>
    <tr><td class="paramname">addr</td><td>The address to program.</td></tr>
    <tr><td class="paramname">writeBuff</td><td>The pointer to the data to program. If this pointer is a NULL, then the function does not enable the interrupt. This use case is typically used when the FIFO is handled outside the interrupt and is managed in either a polling-based code or a DMA. The user would handle the FIFO management in a DMA or a polling-based code. If the user provides a NULL pointer in this function and does not handle the FIFO transaction, this could either stall or timeout the operation <a class="el" href="group__group__smif__low__level__functions.html#gae84cdf32e45e492e80dea38f9d3a7586">Cy_SMIF_TransmitData()</a>.</td></tr>
    <tr><td class="paramname">size</td><td>The size of data to program. The user must ensure that the data size does not exceed the page size.</td></tr>
    <tr><td class="paramname">cmdCompleteCb</td><td>The callback function to call after the transfer completion. NULL interpreted as no callback.</td></tr>
    <tr><td class="paramname">context</td><td>This is the pointer to the context structure <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> allocated by the user. The structure is used during the SMIF operation for internal configuration and data retention. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of a transmission.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9785ad5aefcfc44b2f342035e2eb141a">CY_SMIF_CMD_FIFO_FULL</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41acec88a667ae4eb2db47acfc63492ac7d">CY_SMIF_EXCEED_TIMEOUT</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9972908ec392b0c3a3ccd2e2f837e64e">CY_SMIF_CMD_NOT_FOUND</a> </li>
</ul>
</dd></dl>

</div>
</div>
<a id="ga8507571efa28c8187f5e3c795f59fab4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8507571efa28c8187f5e3c795f59fab4">&#9670;&nbsp;</a></span>Cy_SMIF_MemCmdRead()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_MemCmdRead </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *&#160;</td>
          <td class="paramname"><em>memDevice</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const *&#160;</td>
          <td class="paramname"><em>addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>readBuff</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__data__structures.html#ga13688dde62e8977a11ab69cf6b2c39b5">cy_smif_event_cb_t</a>&#160;</td>
          <td class="paramname"><em>cmdCompleteCb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function performs the Read operation. </p>
<dl class="section note"><dt>Note</dt><dd>This function uses the <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11" title="This function transmits a command byte followed by a parameter which is typically an address field...">Cy_SMIF_TransmitCommand()</a> API. The <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11" title="This function transmits a command byte followed by a parameter which is typically an address field...">Cy_SMIF_TransmitCommand()</a> API works in the blocking mode. In the dual quad mode, this API works with both types of memory simultaneously.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">memDevice</td><td>The device to which the command is sent.</td></tr>
    <tr><td class="paramname">addr</td><td>The address to read.</td></tr>
    <tr><td class="paramname">readBuff</td><td>The pointer to the variable where the read data is stored. If this pointer is a NULL, then the function does not enable the interrupt. This use case is typically used when the FIFO is handled outside the interrupt and is managed in either a polling-based code or a DMA. The user would handle the FIFO management in a DMA or a polling-based code. If the user provides a NULL pointer in this function and does not handle the FIFO transaction, this could either stall or timeout the operation <a class="el" href="group__group__smif__low__level__functions.html#gae84cdf32e45e492e80dea38f9d3a7586">Cy_SMIF_TransmitData()</a>.</td></tr>
    <tr><td class="paramname">size</td><td>The size of data to read.</td></tr>
    <tr><td class="paramname">cmdCompleteCb</td><td>The callback function to call after the transfer completion. NULL interpreted as no callback.</td></tr>
    <tr><td class="paramname">context</td><td>This is the pointer to the context structure <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> allocated by the user. The structure is used during the SMIF operation for internal configuration and data retention. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of the transmission.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9785ad5aefcfc44b2f342035e2eb141a">CY_SMIF_CMD_FIFO_FULL</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41acec88a667ae4eb2db47acfc63492ac7d">CY_SMIF_EXCEED_TIMEOUT</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9972908ec392b0c3a3ccd2e2f837e64e">CY_SMIF_CMD_NOT_FOUND</a></li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Check <a class="el" href="group__group__smif.html#group_smif_usage_rules">Rules for PSoC6 QSPI/SMIF Block Usage</a> for any usage restriction </dd></dl>

</div>
</div>
<a id="ga7f74353f55fbe56cdc8c93285bbb51d6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7f74353f55fbe56cdc8c93285bbb51d6">&#9670;&nbsp;</a></span>Cy_SMIF_MemSfdpDetect()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_MemSfdpDetect </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__mem__device__cfg__t.html">cy_stc_smif_mem_device_cfg_t</a> *&#160;</td>
          <td class="paramname"><em>device</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a>&#160;</td>
          <td class="paramname"><em>slaveSelect</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#ga6d9ba2ef785b94cf542c573a51a0eb58">cy_en_smif_data_select_t</a>&#160;</td>
          <td class="paramname"><em>dataSelect</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function detects the device signature for SFDP devices. </p>
<p>Refer to the SFDP spec (JESD216B) for details. The function asks the device using an SPI and then populates the relevant parameters for <a class="el" href="structcy__stc__smif__mem__device__cfg__t.html">cy_stc_smif_mem_device_cfg_t</a>.</p>
<dl class="section note"><dt>Note</dt><dd>This function is a blocking function and blocks until the structure data is read and returned. This function uses <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11">Cy_SMIF_TransmitCommand()</a> If there is no support for SFDP in the memory device, the API returns an error condition. The function requires:<ul>
<li>SMIF initialized and enabled to work in the normal mode;</li>
<li>readSfdpCmd field of <a class="el" href="structcy__stc__smif__mem__device__cfg__t.html">cy_stc_smif_mem_device_cfg_t</a> is enabled.</li>
</ul>
</dd>
<dd>
The SFDP detect takes into account the types of the SPI supported by the memory device and also the dataSelect option selected to choose which SPI mode (SPI, DSPI, QSPI, OSPI) to load into the structures. The algorithm prefers OSPI&gt;QSPI&gt;DSPI&gt;SPI, provided there is support for it in the memory device and the dataSelect selected by the user. Similarly for data rate, DDR is preferred over SDR if the memory part supports.</dd>
<dd>
4-byte addressing mode is set when the memory device supports 3- or 4-byte addressing mode.</dd>
<dd>
When the Erase command is not found the width of the command transfer (cmdWidth) is set to CY_SMIF_WIDTH_NA. When the Program command is not found for 4 byte addressing mode the Program command instruction is set for 1S-1S-1S Protocol mode and 3-byte addressing mode.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">device</td><td>The device structure instance declared by the user. This is where the detected parameters are stored and returned.</td></tr>
    <tr><td class="paramname">slaveSelect</td><td>The slave select line for the device.</td></tr>
    <tr><td class="paramname">dataSelect</td><td>The data line selection options for a slave device.</td></tr>
    <tr><td class="paramname">context</td><td>This is the pointer to the context structure <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> allocated by the user. The structure is used during the SMIF operation for internal configuration and data retention. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of the transmission.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9785ad5aefcfc44b2f342035e2eb141a">CY_SMIF_CMD_FIFO_FULL</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a82cad8a038846867d173ffca9592e66f">CY_SMIF_NO_SFDP_SUPPORT</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41acec88a667ae4eb2db47acfc63492ac7d">CY_SMIF_EXCEED_TIMEOUT</a> </li>
</ul>
</dd></dl>

</div>
</div>
<a id="gacac7e5f4733100422b67fe756e24e5f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacac7e5f4733100422b67fe756e24e5f2">&#9670;&nbsp;</a></span>Cy_SMIF_Reset_Memory()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Cy_SMIF_Reset_Memory </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a>&#160;</td>
          <td class="paramname"><em>slaveSelect</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is the weak implementation for resetting the memory. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">slaveSelect</td><td>Denotes the number of the slave device to which reset has to be applied for. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga997877a3ca4a218fbec1c00fc4a00138"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga997877a3ca4a218fbec1c00fc4a00138">&#9670;&nbsp;</a></span>Cy_SMIF_MemInitSfdpMode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_MemInitSfdpMode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> *&#160;</td>
          <td class="paramname"><em>memCfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gab71e4b1f4c80b3e8c82dd85570415e44">cy_en_smif_txfr_width_t</a>&#160;</td>
          <td class="paramname"><em>maxdataWidth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#ga686921944cbda1b19deb3c24363e7d9b">cy_en_smif_qer_t</a>&#160;</td>
          <td class="paramname"><em>qer_id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function can be used for any preferred data width based command instruction set from SFDP Buffer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">memCfg</td><td>The memory configuration structure that configures the SMIF memory device to map into the device memory map. <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a></td></tr>
    <tr><td class="paramname">maxdataWidth</td><td>maximum data width available on physical interface.</td></tr>
    <tr><td class="paramname">qer_id</td><td>Quad enable requirement ID specifically used for SFDP 1.0 compliant devices where Quad mode is available for use, but SFDP basic flash parameter table does not specify quad mode enable instruction. In other cases, this can be passed as CY_SMIF_SFDP_QER_0.</td></tr>
    <tr><td class="paramname">context</td><td>This is the pointer to the context structure <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> allocated by the user. The structure is used during the SMIF operation for internal configuration and data retention. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of the transmission.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a9972908ec392b0c3a3ccd2e2f837e64e">CY_SMIF_CMD_NOT_FOUND</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a16f764d7f4502def3be5407179e2669e">CY_SMIF_SFDP_CORRUPTED_TABLE</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41acec88a667ae4eb2db47acfc63492ac7d">CY_SMIF_EXCEED_TIMEOUT</a></li>
</ul>
</dd></dl>
<div class="fragment"><div class="line">        <span class="comment">/* Map memory device to memory map */</span></div><div class="line">    Cy_SMIF_Memslot_Init(SMIF, (<a class="code" href="structcy__stc__smif__block__config__t.html">cy_stc_smif_block_config_t</a> *) &amp;smifBlockConfig, &amp;smifContext);</div><div class="line"></div><div class="line">    <span class="comment">/* Even after SFDP enumeration QE command is not initialized */</span></div><div class="line">    <span class="comment">/* So, it should be 1.0 device */</span></div><div class="line">    <span class="keywordflow">if</span> ((smifMemConfigs[0]-&gt;deviceCfg-&gt;readStsRegQeCmd-&gt;command == 0) || <span class="comment">/* 0 - if configurator generated code */</span></div><div class="line">        (smifMemConfigs[0]-&gt;deviceCfg-&gt;readStsRegQeCmd-&gt;command == <a class="code" href="group__group__smif__macros__sfdp.html#ga3e5e2909f9ba1c20b547494be916fa04">CY_SMIF_NO_COMMAND_OR_MODE</a>)) <span class="comment">/* 0xFF&#39;s if SFDP enumerated */</span></div><div class="line">    {</div><div class="line">         <a class="code" href="group__group__smif__mem__slot__functions.html#ga997877a3ca4a218fbec1c00fc4a00138">Cy_SMIF_MemInitSfdpMode</a>(SMIF, smifMemConfigs[0], <a class="code" href="group__group__smif__enums.html#ggab71e4b1f4c80b3e8c82dd85570415e44a3383ef5c8841cbc61cc083cabb9bec90">CY_SMIF_WIDTH_QUAD</a>, <a class="code" href="group__group__smif__enums.html#gga686921944cbda1b19deb3c24363e7d9bafb3de54fc15aac85a9b3ef7a3d4b6176">CY_SMIF_SFDP_QER_1</a>,&amp;smifContext);</div><div class="line">    }</div></div><!-- fragment -->
</div>
</div>
<a id="ga7538e07a8ab513b8ef223a93528cb4da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7538e07a8ab513b8ef223a93528cb4da">&#9670;&nbsp;</a></span>Cy_SMIF_MemIsReady()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_MemIsReady </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *&#160;</td>
          <td class="paramname"><em>memConfig</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>timeoutUs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Polls the memory device to check whether it is ready to accept new commands or not until either it is ready or the retries have exceeded the limit. </p>
<p>This is a blocking function, it will block the execution flow until the command transmission is completed.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">memConfig</td><td>The memory device configuration.</td></tr>
    <tr><td class="paramname">timeoutUs</td><td>The timeout value in microseconds to apply while polling the memory.</td></tr>
    <tr><td class="paramname">context</td><td>This is the pointer to the context structure <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> allocated by the user. The structure is used during the SMIF operation for internal configuration and data retention. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the operation. <a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a> - Memory is ready to accept new commands. <a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41acec88a667ae4eb2db47acfc63492ac7d">CY_SMIF_EXCEED_TIMEOUT</a> - Memory is busy.</dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    <span class="comment">/* Scenario:  Wait until the erase operation is completed.</span></div><div class="line"><span class="comment">     * The SMIF/QSPI configuration tool generates the smifBlockConfig structure</span></div><div class="line"><span class="comment">     * needed for the memslot level API usage.</span></div><div class="line"><span class="comment">     */</span></div><div class="line"></div><div class="line">    <a class="code" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> SMIF_context = {0};  <span class="comment">/* This is a shared context structure.</span></div><div class="line"><span class="comment">                                               * It must be global</span></div><div class="line"><span class="comment">                                               */</span></div><div class="line"><span class="preprocessor">    #define TIMEOUT         (10000UL)    </span><span class="comment">/* 10 msec timeout */</span><span class="preprocessor"></span></div><div class="line"></div><div class="line">    <span class="comment">/* Wait until the erase operation is completed or a timeout occurs */</span></div><div class="line">    <span class="keywordflow">if</span> (<a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a> != <a class="code" href="group__group__smif__mem__slot__functions.html#ga7538e07a8ab513b8ef223a93528cb4da">Cy_SMIF_MemIsReady</a>(SMIF, smifBlockConfig.memConfig[0], TIMEOUT, &amp;SMIF_context))</div><div class="line">    {</div><div class="line">        <span class="comment">/* Insert error handling */</span></div><div class="line">    }</div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="ga2967ce386fb4510033571fa67dc69ef7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2967ce386fb4510033571fa67dc69ef7">&#9670;&nbsp;</a></span>Cy_SMIF_MemIsQuadEnabled()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_MemIsQuadEnabled </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *&#160;</td>
          <td class="paramname"><em>memConfig</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool *&#160;</td>
          <td class="paramname"><em>isQuadEnabled</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Checks whether the QE (Quad Enable) bit is set or not in the configuration register of the memory. </p>
<p>This is a blocking function, it will block the execution flow until the command transmission is completed.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">memConfig</td><td>The memory device configuration.</td></tr>
    <tr><td class="paramname">isQuadEnabled</td><td>This parameter is updated to indicate whether quad mode is enabled (true) or not (false). The value is valid only when the function returns CY_SMIF_SUCCESS.</td></tr>
    <tr><td class="paramname">context</td><td>This is the pointer to the context structure <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> allocated by the user. The structure is used during the SMIF operation for internal configuration and data retention. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the operation. See <a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>.</dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    <span class="comment">/* Scenario:  Check whether Quad mode (1-1-4 or 1-4-4 modes) is enabled. If Quad mode is disabled,</span></div><div class="line"><span class="comment">     * then enable it to use all the four I/Os during communication.</span></div><div class="line"><span class="comment">     * The SMIF/QSPI configuration tool generates the smifBlockConfig structure</span></div><div class="line"><span class="comment">     * needed for the memslot level API usage.</span></div><div class="line"><span class="comment">     */</span></div><div class="line"></div><div class="line">    <a class="code" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> SMIF_context = {0};  <span class="comment">/* This is a shared context structure.</span></div><div class="line"><span class="comment">                                               * It must be global</span></div><div class="line"><span class="comment">                                               */</span></div><div class="line">    <span class="comment">/* Timeout in microseconds to apply while polling the memory for its ready status after quad</span></div><div class="line"><span class="comment">     * enable command has been sent out. Quad enable is a non-volatile write.</span></div><div class="line"><span class="comment">     */</span></div><div class="line"><span class="preprocessor">    #define QUAD_ENABLE_TIMEOUT    (5000UL)  </span><span class="comment">/* 5 milliseconds */</span><span class="preprocessor"></span></div><div class="line">    <span class="keywordtype">bool</span> isQuadEnabled = <span class="keyword">false</span>;</div><div class="line"></div><div class="line">    <span class="comment">/* Check whether Quad mode is enabled */</span></div><div class="line">    <span class="keywordflow">if</span> (<a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a> != <a class="code" href="group__group__smif__mem__slot__functions.html#ga2967ce386fb4510033571fa67dc69ef7">Cy_SMIF_MemIsQuadEnabled</a>(SMIF, smifBlockConfig.memConfig[0], &amp;isQuadEnabled, &amp;SMIF_context))</div><div class="line">    {</div><div class="line">        <span class="comment">/* Insert error handling */</span></div><div class="line">    }</div><div class="line"></div><div class="line">    <span class="keywordflow">if</span> (!isQuadEnabled)</div><div class="line">    {</div><div class="line">        <span class="comment">/* Enable Quad Mode */</span></div><div class="line">        <span class="keywordflow">if</span> (<a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a> != <a class="code" href="group__group__smif__mem__slot__functions.html#ga1be9fc6a3d0579ed6dcbf4b0f843c98b">Cy_SMIF_MemEnableQuadMode</a>(SMIF, smifBlockConfig.memConfig[0], QUAD_ENABLE_TIMEOUT, &amp;SMIF_context))</div><div class="line">        {</div><div class="line">            <span class="comment">/* Insert error handling */</span></div><div class="line">        }</div><div class="line">    }</div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="ga1be9fc6a3d0579ed6dcbf4b0f843c98b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1be9fc6a3d0579ed6dcbf4b0f843c98b">&#9670;&nbsp;</a></span>Cy_SMIF_MemEnableQuadMode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_MemEnableQuadMode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *&#160;</td>
          <td class="paramname"><em>memConfig</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>timeoutUs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets the QE (QUAD Enable) bit in the external memory configuration register to enable quad SPI mode. </p>
<p>This is a blocking function, it will block the execution flow until the command transmission is completed.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">memConfig</td><td>The memory device configuration.</td></tr>
    <tr><td class="paramname">timeoutUs</td><td>The timeout value in microseconds to apply while polling the memory.</td></tr>
    <tr><td class="paramname">context</td><td>This is the pointer to the context structure <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> allocated by the user. The structure is used during the SMIF operation for internal configuration and data retention. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the operation. See <a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>.</dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd>See <a class="el" href="group__group__smif__mem__slot__functions.html#ga2967ce386fb4510033571fa67dc69ef7">Cy_SMIF_MemIsQuadEnabled</a> usage. </dd></dl>

</div>
</div>
<a id="ga3754459e6dd69599c7646a03a7039136"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3754459e6dd69599c7646a03a7039136">&#9670;&nbsp;</a></span>Cy_SMIF_MemRead()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_MemRead </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *&#160;</td>
          <td class="paramname"><em>memConfig</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>rxBuffer</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads data from the external memory and blocks until the read transfer is complete or a timeout occurs. </p>
<p>This is a blocking function, it will block the execution flow until the command transmission is completed.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">memConfig</td><td>The memory device configuration.</td></tr>
    <tr><td class="paramname">address</td><td>The address to read data from.</td></tr>
    <tr><td class="paramname">rxBuffer</td><td>The buffer for storing the read data. In case of Octal DDR, address must be an even address.</td></tr>
    <tr><td class="paramname">length</td><td>The size of data to read.</td></tr>
    <tr><td class="paramname">context</td><td>This is the pointer to the context structure <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> allocated by the user. The structure is used during the SMIF operation for internal configuration and data retention. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the operation. See <a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>.</dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    <span class="comment">/* Scenario:  Read 64 bytes of data from the external memory into the rxBuffer array.</span></div><div class="line"><span class="comment">     * The SMIF/QSPI configuration tool generates the smifBlockConfig structure</span></div><div class="line"><span class="comment">     * needed for the memslot level API usage.</span></div><div class="line"><span class="comment">     */</span></div><div class="line"><span class="preprocessor">    #define READ_PACKET_SIZE         (64U)    </span><span class="comment">/* Data Buffer size */</span><span class="preprocessor"></span></div><div class="line">    <a class="code" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> SMIF_context = {0};  <span class="comment">/* This is a shared context structure.</span></div><div class="line"><span class="comment">                                               * It must be global</span></div><div class="line"><span class="comment">                                               */</span></div><div class="line">    uint32_t extMemAddress = 0x00UL;     <span class="comment">/* Address = 0x00000000 (4 bytes) */</span></div><div class="line">    uint8_t rxBuffer[READ_PACKET_SIZE];</div><div class="line"></div><div class="line">    <span class="comment">/* Read data from the external memory */</span></div><div class="line">    <span class="keywordflow">if</span> (<a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a> != <a class="code" href="group__group__smif__mem__slot__functions.html#ga3754459e6dd69599c7646a03a7039136">Cy_SMIF_MemRead</a>(SMIF, smifBlockConfig.memConfig[0], extMemAddress, rxBuffer, READ_PACKET_SIZE, &amp;SMIF_context))</div><div class="line">    {</div><div class="line">        <span class="comment">/* Insert error handling */</span></div><div class="line">    }</div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="ga1906a54462e0cd85e6d5a6e6efc03c7a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1906a54462e0cd85e6d5a6e6efc03c7a">&#9670;&nbsp;</a></span>Cy_SMIF_MemWrite()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_MemWrite </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *&#160;</td>
          <td class="paramname"><em>memConfig</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t const&#160;</td>
          <td class="paramname"><em>txBuffer</em>[], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function writes data to the external memory. </p>
<p>This is a blocking function, it will block the execution flow until the command transmission is completed.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">memConfig</td><td>The memory device configuration.</td></tr>
    <tr><td class="paramname">address</td><td>The address to write data at. In case of Octal DDR, address must be an even address.</td></tr>
    <tr><td class="paramname">txBuffer</td><td>The buffer holding the data to write in the external memory.</td></tr>
    <tr><td class="paramname">length</td><td>The size of data to write.</td></tr>
    <tr><td class="paramname">context</td><td>This is the pointer to the context structure <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> allocated by the user. The structure is used during the SMIF operation for internal configuration and data retention. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the operation. See <a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>.</dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    <span class="comment">/* Scenario:  Write 64 bytes of data from the txBuffer array into the external memory.</span></div><div class="line"><span class="comment">     * The SMIF/QSPI configuration tool generates the smifBlockConfig structure</span></div><div class="line"><span class="comment">     * needed for the memslot level API usage.</span></div><div class="line"><span class="comment">     */</span></div><div class="line"><span class="preprocessor">    #define WRITE_PACKET_SIZE         (64U)    </span><span class="comment">/* Data Buffer size */</span><span class="preprocessor"></span></div><div class="line">    <a class="code" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> SMIF_context = {0};  <span class="comment">/* This is a shared context structure.</span></div><div class="line"><span class="comment">                                               * It must be global</span></div><div class="line"><span class="comment">                                               */</span></div><div class="line">    uint32_t extMemAddress = 0x00UL;     <span class="comment">/* Address = 0x00000000 */</span></div><div class="line">    uint8_t txBuffer[WRITE_PACKET_SIZE] = {0};</div><div class="line"></div><div class="line">    <span class="comment">/* Write data into the external memory */</span></div><div class="line">    <span class="keywordflow">if</span> (<a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a> != <a class="code" href="group__group__smif__mem__slot__functions.html#ga1906a54462e0cd85e6d5a6e6efc03c7a">Cy_SMIF_MemWrite</a>(SMIF, smifBlockConfig.memConfig[0], extMemAddress, txBuffer, WRITE_PACKET_SIZE, &amp;SMIF_context))</div><div class="line">    {</div><div class="line">        <span class="comment">/* Insert error handling */</span></div><div class="line">    }</div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="ga0366724555c54f148c6bec37f084897c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0366724555c54f148c6bec37f084897c">&#9670;&nbsp;</a></span>Cy_SMIF_MemEraseSector()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_MemEraseSector </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *&#160;</td>
          <td class="paramname"><em>memConfig</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Erases a block/sector of the external memory. </p>
<p>This is a blocking function, it will block the execution flow until the command transmission is completed.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">memConfig</td><td>The memory device configuration.</td></tr>
    <tr><td class="paramname">address</td><td>The address of the block to be erased. The address will be aligned to the start address of the sector in which address is located.</td></tr>
    <tr><td class="paramname">length</td><td>The length of data to erase. The length will be aligned to the sector boundary where end address is located. If length exceeds memory size API returns <a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a> without performing erase operation.</td></tr>
    <tr><td class="paramname">context</td><td>This is the pointer to the context structure <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> allocated by the user. The structure is used during the SMIF operation for internal configuration and data retention. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the operation. See <a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Memories like hybrid have sectors of different sizes. <br />
Check the address and length parameters before calling this function.</dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    <span class="comment">/* Scenario:  Erase one sector of the external memory.</span></div><div class="line"><span class="comment">     * The SMIF/QSPI configuration tool generates the smifBlockConfig structure</span></div><div class="line"><span class="comment">     * needed for the memslot level API usage.</span></div><div class="line"><span class="comment">     */</span></div><div class="line">    <a class="code" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> SMIF_context = {0};  <span class="comment">/* This is a shared context structure.</span></div><div class="line"><span class="comment">                                               * It must be global</span></div><div class="line"><span class="comment">                                               */</span></div><div class="line">    uint32_t extMemAddress = 0x00UL;     <span class="comment">/* Address = 0x00000000 */</span></div><div class="line">    uint32_t length = smifBlockConfig.memConfig[0]-&gt;deviceCfg-&gt;eraseSize;   <span class="comment">/* The sector size */</span></div><div class="line"></div><div class="line">    <span class="comment">/* Erase a sector of the external memory */</span></div><div class="line">    <span class="keywordflow">if</span> (<a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a> != <a class="code" href="group__group__smif__mem__slot__functions.html#ga0366724555c54f148c6bec37f084897c">Cy_SMIF_MemEraseSector</a>(SMIF, smifBlockConfig.memConfig[0], extMemAddress, length, &amp;SMIF_context))</div><div class="line">    {</div><div class="line">        <span class="comment">/* Insert error handling */</span></div><div class="line">    }</div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="ga7525385db143137bd0e16a82e248243d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7525385db143137bd0e16a82e248243d">&#9670;&nbsp;</a></span>Cy_SMIF_MemEraseChip()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_MemEraseChip </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *&#160;</td>
          <td class="paramname"><em>memConfig</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Erases the entire chip of the external memory. </p>
<p>This is a blocking function, it will block the execution flow until the command transmission is completed.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">memConfig</td><td>The memory device configuration.</td></tr>
    <tr><td class="paramname">context</td><td>This is the pointer to the context structure <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> allocated by the user. The structure is used during the SMIF operation for internal configuration and data retention. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the operation. See <a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a>.</dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    <span class="comment">/* Scenario:  Erase the entire chip.</span></div><div class="line"><span class="comment">     * The SMIF/QSPI configuration tool generates the smifBlockConfig structure</span></div><div class="line"><span class="comment">     * needed for the memslot level API usage.</span></div><div class="line"><span class="comment">     */</span></div><div class="line">    <a class="code" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> SMIF_context = {0};  <span class="comment">/* This is a shared context structure.</span></div><div class="line"><span class="comment">                                               * It must be global</span></div><div class="line"><span class="comment">                                               */</span></div><div class="line"></div><div class="line">    <span class="comment">/* Erase the entire chip */</span></div><div class="line">    <span class="keywordflow">if</span> (<a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a> != <a class="code" href="group__group__smif__mem__slot__functions.html#ga7525385db143137bd0e16a82e248243d">Cy_SMIF_MemEraseChip</a>(SMIF, smifBlockConfig.memConfig[0], &amp;SMIF_context))</div><div class="line">    {</div><div class="line">        <span class="comment">/* Insert error handling */</span></div><div class="line">    }</div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="ga2ecd32504ba15c504203a6ac3daee4c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2ecd32504ba15c504203a6ac3daee4c4">&#9670;&nbsp;</a></span>Cy_SMIF_MemLocateHybridRegion()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_MemLocateHybridRegion </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *&#160;</td>
          <td class="paramname"><em>memDevice</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__hybrid__region__info__t.html">cy_stc_smif_hybrid_region_info_t</a> **&#160;</td>
          <td class="paramname"><em>regionInfo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>address</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function locates the region structure by the address which belongs to it. </p>
<dl class="section note"><dt>Note</dt><dd>This function is valid for the memories with hybrid sectors.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">memDevice</td><td>The memory device configuration.</td></tr>
    <tr><td class="paramname">regionInfo</td><td>Places a hybrid region configuration structure that contains the region specific parameters. See <a class="el" href="structcy__stc__smif__hybrid__region__info__t.html">cy_stc_smif_hybrid_region_info_t</a> for reference.</td></tr>
    <tr><td class="paramname">address</td><td>The address for which a region is searched.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of the region location.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41ad69a47ad9f7a4b47ef338af3c9b8bd42">CY_SMIF_NOT_HYBRID_MEM</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a></li>
</ul>
</dd></dl>
<dl class="section user"><dt>Function Usage</dt><dd><div class="fragment"><div class="line">    <span class="comment">/* Scenario: Get the erase size for a specific region.</span></div><div class="line"><span class="comment">     * Erase one sector of the external memory.</span></div><div class="line"><span class="comment">     * The SMIF/QSPI configuration tool generates the smifBlockConfig structure</span></div><div class="line"><span class="comment">     * needed for the memslot level API usage.</span></div><div class="line"><span class="comment">     */</span></div><div class="line"></div><div class="line">    <a class="code" href="structcy__stc__smif__hybrid__region__info__t.html">cy_stc_smif_hybrid_region_info_t</a> *currentRegionInfo = NULL; <span class="comment">/* The pointer to the structure</span></div><div class="line"><span class="comment">                                                                 * which defines the region</span></div><div class="line"><span class="comment">                                                                 * we are searching for.*/</span></div><div class="line"></div><div class="line">    <a class="code" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> SMIF_context = {0};                         <span class="comment">/* This is a shared context structure.</span></div><div class="line"><span class="comment">                                                                      * It must be global</span></div><div class="line"><span class="comment">                                                                      */</span></div><div class="line"></div><div class="line">    uint32_t regionAddress = 0x00UL; <span class="comment">/* The address for which a region is searched */</span></div><div class="line"></div><div class="line">    <span class="comment">/* Update the currentRegion with a pointer to the region the address belongs to */</span></div><div class="line">    <a class="code" href="group__group__smif__mem__slot__functions.html#ga2ecd32504ba15c504203a6ac3daee4c4">Cy_SMIF_MemLocateHybridRegion</a>(smifBlockConfig.memConfig[0], &amp;currentRegionInfo, regionAddress);</div><div class="line"></div><div class="line">    <span class="comment">/* Populate the erase size and erase time from the region structure */</span></div><div class="line">    uint32_t regionEraseSize = currentRegionInfo-&gt;<a class="code" href="structcy__stc__smif__hybrid__region__info__t.html#adfc0f4f12e086a45f53008ac2158c62a">eraseSize</a>;</div><div class="line"></div><div class="line">    <span class="comment">/* Erase a sector of the external memory */</span></div><div class="line">    <span class="keywordflow">if</span> (<a class="code" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a> != <a class="code" href="group__group__smif__mem__slot__functions.html#ga0366724555c54f148c6bec37f084897c">Cy_SMIF_MemEraseSector</a>(SMIF, smifBlockConfig.memConfig[0], regionAddress, regionEraseSize, &amp;SMIF_context))</div><div class="line">    {</div><div class="line">        <span class="comment">/* Insert error handling */</span></div><div class="line">    }</div><div class="line"></div></div><!-- fragment --></dd></dl>

</div>
</div>
<a id="ga18824b6bf3b3c8a5ac03a24f748da880"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga18824b6bf3b3c8a5ac03a24f748da880">&#9670;&nbsp;</a></span>Cy_SMIF_SetReadyPollingDelay()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Cy_SMIF_SetReadyPollingDelay </td>
          <td>(</td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>pollTimeoutUs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sets the polling delay in micro seconds to check memory device availability. </p>
<p>By default polling delay is set to 0.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pollTimeoutUs</td><td>Specifies the polling timeout value in micro seconds.</td></tr>
    <tr><td class="paramname">context</td><td>This is the pointer to the context structure <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> allocated by the user. The structure is used during the SMIF operation for internal configuration and data retention. The user must not modify anything in this structure. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga980d0c489c56484a487cf6f501086133"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga980d0c489c56484a487cf6f501086133">&#9670;&nbsp;</a></span>Cy_SMIF_MemCmdPowerDown()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_MemCmdPowerDown </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *&#160;</td>
          <td class="paramname"><em>memDevice</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sends a Power-down command to the selected memory device in Single SPI mode. </p>
<p>Please note that, once <a class="el" href="group__group__smif__mem__slot__functions.html#ga980d0c489c56484a487cf6f501086133">Cy_SMIF_MemCmdPowerDown</a> is issued, external memory will not respond to any other command except <a class="el" href="group__group__smif__mem__slot__functions.html#gabb2213b32c3004b0b46f63e859e4b7e4">Cy_SMIF_MemCmdReleasePowerDown</a>.</p>
<dl class="section note"><dt>Note</dt><dd>This function uses the low-level <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11" title="This function transmits a command byte followed by a parameter which is typically an address field...">Cy_SMIF_TransmitCommand()</a> API. <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11" title="This function transmits a command byte followed by a parameter which is typically an address field...">Cy_SMIF_TransmitCommand()</a> API works in a blocking mode. In the dual quad mode this API should be called for each memory.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">memDevice</td><td>The device to which the command is sent.</td></tr>
    <tr><td class="paramname">context</td><td>This is the pointer to the context structure <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> allocated by the user. The structure is used during the SMIF operation for internal configuration and data retention. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of the command transmission.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41acec88a667ae4eb2db47acfc63492ac7d">CY_SMIF_EXCEED_TIMEOUT</a></li>
</ul>
</dd></dl>
<div class="fragment"><div class="line">    <a class="code" href="group__group__smif__low__level__functions.html#ga957f49ed7cf091e9b9d736ee589f2583">Cy_SMIF_SetMode</a>(SMIF, <a class="code" href="group__group__smif__enums.html#gga2baa7c37d2cedf2e2c837facc753ab5da4fe852fb31547c77b31203ec5c43ca91">CY_SMIF_NORMAL</a>);</div><div class="line">    <span class="comment">/* This function sends a Power-down command to the selected memory device in Single SPI mode.*/</span></div><div class="line">    <a class="code" href="group__group__smif__mem__slot__functions.html#ga980d0c489c56484a487cf6f501086133">Cy_SMIF_MemCmdPowerDown</a>(SMIF, &amp;memSs0, &amp;smifContext);</div><div class="line"></div><div class="line">    <span class="comment">/* This function sends a Release Power-down command to the selected memory device in Single SPI mode. */</span></div><div class="line">    <a class="code" href="group__group__smif__mem__slot__functions.html#gabb2213b32c3004b0b46f63e859e4b7e4">Cy_SMIF_MemCmdReleasePowerDown</a>(SMIF, &amp;memSs0, &amp;smifContext);</div></div><!-- fragment -->
</div>
</div>
<a id="gabb2213b32c3004b0b46f63e859e4b7e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabb2213b32c3004b0b46f63e859e4b7e4">&#9670;&nbsp;</a></span>Cy_SMIF_MemCmdReleasePowerDown()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_MemCmdReleasePowerDown </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> const *&#160;</td>
          <td class="paramname"><em>memDevice</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> const *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sends a Release Power-down command to the selected memory device in Single SPI mode. </p>
<dl class="section note"><dt>Note</dt><dd>This function uses the low-level <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11" title="This function transmits a command byte followed by a parameter which is typically an address field...">Cy_SMIF_TransmitCommand()</a> API. <a class="el" href="group__group__smif__low__level__functions.html#ga5abea630fca93c72faece8b23549cd11" title="This function transmits a command byte followed by a parameter which is typically an address field...">Cy_SMIF_TransmitCommand()</a> API works in a blocking mode. In the dual quad mode this API should be called for each memory.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">memDevice</td><td>The device to which the command is sent.</td></tr>
    <tr><td class="paramname">context</td><td>This is the pointer to the context structure <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> allocated by the user. The structure is used during the SMIF operation for internal configuration and data retention. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of the command transmission.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41acec88a667ae4eb2db47acfc63492ac7d">CY_SMIF_EXCEED_TIMEOUT</a></li>
</ul>
</dd></dl>
<div class="fragment"><div class="line">    <a class="code" href="group__group__smif__low__level__functions.html#ga957f49ed7cf091e9b9d736ee589f2583">Cy_SMIF_SetMode</a>(SMIF, <a class="code" href="group__group__smif__enums.html#gga2baa7c37d2cedf2e2c837facc753ab5da4fe852fb31547c77b31203ec5c43ca91">CY_SMIF_NORMAL</a>);</div><div class="line">    <span class="comment">/* This function sends a Power-down command to the selected memory device in Single SPI mode.*/</span></div><div class="line">    <a class="code" href="group__group__smif__mem__slot__functions.html#ga980d0c489c56484a487cf6f501086133">Cy_SMIF_MemCmdPowerDown</a>(SMIF, &amp;memSs0, &amp;smifContext);</div><div class="line"></div><div class="line">    <span class="comment">/* This function sends a Release Power-down command to the selected memory device in Single SPI mode. */</span></div><div class="line">    <a class="code" href="group__group__smif__mem__slot__functions.html#gabb2213b32c3004b0b46f63e859e4b7e4">Cy_SMIF_MemCmdReleasePowerDown</a>(SMIF, &amp;memSs0, &amp;smifContext);</div></div><!-- fragment -->
</div>
</div>
<a id="ga0bbdafc8248267cb394f096579ffe992"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0bbdafc8248267cb394f096579ffe992">&#9670;&nbsp;</a></span>Cy_SMIF_MemEnableFWCalibration()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Cy_SMIF_MemEnableFWCalibration </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a>&#160;</td>
          <td class="paramname"><em>slave</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function enables Firmware Calibration mode for the device. </p>
<p>Once firmware calibration mode is enabled, user can add delay taps for selected data line using <a class="el" href="group__group__smif__mem__slot__functions.html#gac18b090fdeb706017c0440961dc398c3">Cy_SMIF_GetSelectedDelayTapSel</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">slave</td><td>Holds the slave select line for which delay tap setting should be applied for.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>This API is supported on CAT1D devices. </dd></dl>

</div>
</div>
<a id="ga3e786478e5f61f5ed765fb6f85763cbe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3e786478e5f61f5ed765fb6f85763cbe">&#9670;&nbsp;</a></span>Cy_SMIF_MemDisableFWCalibration()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Cy_SMIF_MemDisableFWCalibration </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a>&#160;</td>
          <td class="paramname"><em>slave</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function disables Firmware Calibration mode for the device. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">slave</td><td>Holds the slave select line for which delay tap setting should be applied for.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>This API is supported on CAT1D devices. </dd></dl>

</div>
</div>
<a id="gad090759fd4274f1ed9af72742ef7354c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad090759fd4274f1ed9af72742ef7354c">&#9670;&nbsp;</a></span>Cy_SMIF_SetSelectedDelayTapSel()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_SetSelectedDelayTapSel </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a>&#160;</td>
          <td class="paramname"><em>slave</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#ga75fd5ed63d1828766ad5c8a7a20c52ca">cy_en_smif_mem_data_line_t</a>&#160;</td>
          <td class="paramname"><em>data_line</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>tapSel</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sets delay tap for a particular data line. </p>
<p><a class="el" href="group__group__smif__mem__slot__functions.html#ga0bbdafc8248267cb394f096579ffe992">Cy_SMIF_MemEnableFWCalibration</a> should be called to get this setting into effect.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">slave</td><td>Holds the slave select line for which delay tap setting should be applied for.</td></tr>
    <tr><td class="paramname">data_line</td><td>Holds the data line for which delay tap setting should be applied for.</td></tr>
    <tr><td class="paramname">tapSel</td><td>tap selection value (0-15) where lower nibble indicates the delay tap setting for positive clock phase and higher nibble indicates the setting for negative clock phase delay tap selection.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> CY_SMIF_SUCCESS - If delay tap is set. CY_SMIF_BAD_PARAM - If user tries to set delay tap without enabling FW Calibration mode.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is supported on CAT1D devices. </dd></dl>

</div>
</div>
<a id="gac18b090fdeb706017c0440961dc398c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac18b090fdeb706017c0440961dc398c3">&#9670;&nbsp;</a></span>Cy_SMIF_GetSelectedDelayTapSel()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t Cy_SMIF_GetSelectedDelayTapSel </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#gad776a0db9224477ab865254a32d9e312">cy_en_smif_slave_select_t</a>&#160;</td>
          <td class="paramname"><em>slave</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__smif__enums.html#ga75fd5ed63d1828766ad5c8a7a20c52ca">cy_en_smif_mem_data_line_t</a>&#160;</td>
          <td class="paramname"><em>data_line</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function gets delay tap set for a particular data line. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">slave</td><td>Holds the slave select line for which delay tap setting should be retrieved.</td></tr>
    <tr><td class="paramname">data_line</td><td>Holds the data line for which delay tap setting should be retrieved.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>uint8_t tap selection value where lower nibble indicates the delay tap setting for positive clock phase and higher nibble indicates the setting for negative clock phase delay tap selection.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This API is supported on CAT1D devices. </dd></dl>

</div>
</div>
<a id="ga5af364fada94a7d6d660b8d3c2028b56"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5af364fada94a7d6d660b8d3c2028b56">&#9670;&nbsp;</a></span>Cy_SMIF_MemGetSDLTap()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_MemGetSDLTap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> *&#160;</td>
          <td class="paramname"><em>memConfig</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>posTap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>negTap</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function retrieves the Slave Delay Line (SDL) Tap in use. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">memConfig</td><td>The device for which SDL tap value has to be retrieved.</td></tr>
    <tr><td class="paramname">posTap</td><td>Returns positive delay tap value set.</td></tr>
    <tr><td class="paramname">negTap</td><td>Returns negative delay tap value set.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of the command transmission.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a> </li>
</ul>
</dd></dl>

</div>
</div>
<a id="ga51dba308ae8592cda5c0b1f80eeee47f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga51dba308ae8592cda5c0b1f80eeee47f">&#9670;&nbsp;</a></span>Cy_SMIF_MemSetSDLTap()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_MemSetSDLTap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> *&#160;</td>
          <td class="paramname"><em>memConfig</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>posTap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>negTap</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sets the Slave Delay Line (SDL) tap ranging from 0 to 15. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">memConfig</td><td>The device for which SDL tap value has to be set.</td></tr>
    <tr><td class="paramname">posTap</td><td>Positive delay tap value to be set.</td></tr>
    <tr><td class="paramname">negTap</td><td>Negative delay tap value to be set.</td></tr>
  </table>
  </dd>
</dl>
<p>modify anything in this structure.</p>
<dl class="section return"><dt>Returns</dt><dd>A status of the command transmission.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41a858bf399de59819187ec0b3d8913107b">CY_SMIF_BAD_PARAM</a> </li>
</ul>
</dd></dl>

</div>
</div>
<a id="ga0b50fd00f027d29d3486bcd6af76fe1c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0b50fd00f027d29d3486bcd6af76fe1c">&#9670;&nbsp;</a></span>Cy_SMIF_MemCalibrateSDL()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__smif__enums.html#ga75fb83c49239ece738cfba778165cb41">cy_en_smif_status_t</a> Cy_SMIF_MemCalibrateSDL </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_s_m_i_f___type.html">SMIF_Type</a> *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structcy__stc__smif__mem__config__t.html">cy_stc_smif_mem_config_t</a> *&#160;</td>
          <td class="paramname"><em>memConfig</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>calibrationDataOffsetAddress</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function takes an offset address as input to perform read/write test and assign best possible Slave Delay Line (SDL) tap. </p>
<p>In case of flash memory, the sector where the address falls in would be erased to perform write operation of calibration pattern.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Holds the base address of the SMIF block registers.</td></tr>
    <tr><td class="paramname">memConfig</td><td>The device to which calibration of SDL tap</td></tr>
    <tr><td class="paramname">calibrationDataOffsetAddress</td><td>Offset address in the memory to which calibration pattern would be written and read back to identify the best possible SDL tap.</td></tr>
    <tr><td class="paramname">context</td><td>This is the pointer to the context structure <a class="el" href="structcy__stc__smif__context__t.html">cy_stc_smif_context_t</a> allocated by the user. The structure is used during the SMIF operation for internal configuration and data retention. The user must not modify anything in this structure.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A status of the command transmission.<ul>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41af59dcc9751976e423239cac212df16cc">CY_SMIF_SUCCESS</a></li>
<li><a class="el" href="group__group__smif__enums.html#gga75fb83c49239ece738cfba778165cb41acec88a667ae4eb2db47acfc63492ac7d">CY_SMIF_EXCEED_TIMEOUT</a> </li>
</ul>
</dd></dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part
<div id="nav-path" class="navpath">
    <ul>
        <li class="footer">
            Generated for <b>MTB CAT1 Peripheral driver library</b> by <b>Cypress Semiconductor Corporation</b>.
            All rights reserved.
        </li>
    </ul>
</div>
-->
</body>
</html>
